package Negocio;

import java.util.Collection;

import ClassesBasicas.Historico;
import ClassesBasicas.Pessoa;
import DAO.RepositorioHistorico;
import DAO.RepositorioPessoa;
import Excecao.PessoaExistenteException;
import Excecao.PessoaInexistenteException;

public class CadastroPessoa {

	private RepositorioPessoa pessoas;
	
	private RepositorioHistorico historicos;

	public CadastroPessoa(RepositorioPessoa pessoa) {		

		this.pessoas = pessoa;
		this.historicos = new RepositorioHistorico();
	}
	
	
	public void atualizar(Pessoa pessoa, String tipo) throws PessoaInexistenteException {

		pessoas.atualizar(pessoa, tipo);
	}
	
	public Collection<? extends Pessoa >listar(String tipo){

		return pessoas.listar(tipo);
	}

	public void cadastrar(Pessoa pessoa, String tipo) throws PessoaExistenteException {
		String cpf = pessoa.getCpf();
		if (!pessoas.existe(cpf, tipo)) {
			pessoas.inserir(pessoa);
		} else {
			throw new PessoaExistenteException(pessoa.getCpf());
		}
	}

	public void descadastrar(String cpf, String tipo) throws PessoaInexistenteException {

		pessoas.remover(cpf, tipo);
	}

	public Pessoa procurar(String cpf, String tipo) throws PessoaInexistenteException {

		return pessoas.procurar(cpf, tipo);
	}
	
	public Pessoa procurarPessoaNome(String nome)throws PessoaInexistenteException{
		return pessoas.procurarPessoaNome(nome);
	}
	
	public Collection<Historico> consultarHistoricos(String cpf){
		return historicos.consultarHistoricos(cpf);
	}
	
	public void inserirHistorico(Historico h){
		 historicos.inserirHistoricos(h);
	}
}
